{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "573391cd",
   "metadata": {},
   "source": [
    "Excel表格“pydata05”收集股票相关数据，基于“pydata05.xlsx”数据集回答以下问题，数据导入后命名为pydata05。以下每道题均是在原始数据基础上进行的，题干所涉及到的数据修改操作不继承到其他题中。 pydata05.xlsx"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1cd5024b",
   "metadata": {},
   "source": [
    "#### 101、请通过max()函数分析pydata05.xlsx，说出显示的”开盘”列中的最大值是 (A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "1fd8e562",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>收盘</th>\n",
       "      <th>开盘</th>\n",
       "      <th>高</th>\n",
       "      <th>低</th>\n",
       "      <th>交易量</th>\n",
       "      <th>涨跌幅</th>\n",
       "      <th>类别</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>44446</td>\n",
       "      <td>91.14</td>\n",
       "      <td>90.80</td>\n",
       "      <td>93.47</td>\n",
       "      <td>90.43</td>\n",
       "      <td>6.80M</td>\n",
       "      <td>0.0604</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>44442</td>\n",
       "      <td>85.95</td>\n",
       "      <td>84.93</td>\n",
       "      <td>87.26</td>\n",
       "      <td>84.55</td>\n",
       "      <td>3.03M</td>\n",
       "      <td>0.0265</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>44441</td>\n",
       "      <td>83.73</td>\n",
       "      <td>85.47</td>\n",
       "      <td>86.48</td>\n",
       "      <td>82.46</td>\n",
       "      <td>4.26M</td>\n",
       "      <td>-0.0098</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>44440</td>\n",
       "      <td>84.56</td>\n",
       "      <td>82.52</td>\n",
       "      <td>87.49</td>\n",
       "      <td>81.75</td>\n",
       "      <td>9.11M</td>\n",
       "      <td>0.0540</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>44439</td>\n",
       "      <td>80.23</td>\n",
       "      <td>76.27</td>\n",
       "      <td>80.24</td>\n",
       "      <td>75.11</td>\n",
       "      <td>7.37M</td>\n",
       "      <td>0.0823</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      日期     收盘     开盘      高      低    交易量     涨跌幅  类别\n",
       "0  44446  91.14  90.80  93.47  90.43  6.80M  0.0604   1\n",
       "1  44442  85.95  84.93  87.26  84.55  3.03M  0.0265   2\n",
       "2  44441  83.73  85.47  86.48  82.46  4.26M -0.0098   3\n",
       "3  44440  84.56  82.52  87.49  81.75  9.11M  0.0540   1\n",
       "4  44439  80.23  76.27  80.24  75.11  7.37M  0.0823   3"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df = pd.read_excel(\"pydata05_1678066125986.xlsx\")\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "cdd1b80e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "156.28"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['开盘'].max()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1b9faec",
   "metadata": {},
   "source": [
    "#### 102、在导入数据集pydata05时下列哪个参数可以更改导入数据集的列名（A ）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "716c1c26",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 查看函数用法\n",
    "pd.read_excel?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4748e0b4",
   "metadata": {},
   "source": [
    "#### 103、在pydata05.xlsx文件中的‘低’列中设置了一个小于9.86的异常值，请问它在哪一行（B）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "82a66d27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>收盘</th>\n",
       "      <th>开盘</th>\n",
       "      <th>高</th>\n",
       "      <th>低</th>\n",
       "      <th>交易量</th>\n",
       "      <th>涨跌幅</th>\n",
       "      <th>类别</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>770</th>\n",
       "      <td>43327</td>\n",
       "      <td>10.27</td>\n",
       "      <td>9.9</td>\n",
       "      <td>10.3</td>\n",
       "      <td>9.09</td>\n",
       "      <td>10.74M</td>\n",
       "      <td>-0.0366</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        日期     收盘   开盘     高     低     交易量     涨跌幅  类别\n",
       "770  43327  10.27  9.9  10.3  9.09  10.74M -0.0366   3"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "condition = df['低'] < 9.86\n",
    "df[condition]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1291e833",
   "metadata": {},
   "source": [
    "#### 104、对pydata05中后50个'收盘'进行求和，结果为（B ）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "99c8ef2a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "620.51"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['收盘'].iloc[-50:].sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12d199f2",
   "metadata": {},
   "source": [
    "#### 105、请使用count()函数，求出pydata05中类别为2的组，‘高’的数量是（B ）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "728e32c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "288"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "condition = (df['类别'] == 2)\n",
    "df[condition]['高'].count()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c2578a4",
   "metadata": {},
   "source": [
    "#### 106、对pydata05的'收盘'进行ARMA模型拟合，下列为1阶AR和1阶MA模型的拟合效果图是（ C）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "84b1e5b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>收盘</th>\n",
       "      <th>开盘</th>\n",
       "      <th>高</th>\n",
       "      <th>低</th>\n",
       "      <th>交易量</th>\n",
       "      <th>涨跌幅</th>\n",
       "      <th>类别</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>44446</td>\n",
       "      <td>91.14</td>\n",
       "      <td>90.80</td>\n",
       "      <td>93.47</td>\n",
       "      <td>90.43</td>\n",
       "      <td>6.80M</td>\n",
       "      <td>0.0604</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>44442</td>\n",
       "      <td>85.95</td>\n",
       "      <td>84.93</td>\n",
       "      <td>87.26</td>\n",
       "      <td>84.55</td>\n",
       "      <td>3.03M</td>\n",
       "      <td>0.0265</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>44441</td>\n",
       "      <td>83.73</td>\n",
       "      <td>85.47</td>\n",
       "      <td>86.48</td>\n",
       "      <td>82.46</td>\n",
       "      <td>4.26M</td>\n",
       "      <td>-0.0098</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>44440</td>\n",
       "      <td>84.56</td>\n",
       "      <td>82.52</td>\n",
       "      <td>87.49</td>\n",
       "      <td>81.75</td>\n",
       "      <td>9.11M</td>\n",
       "      <td>0.0540</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>44439</td>\n",
       "      <td>80.23</td>\n",
       "      <td>76.27</td>\n",
       "      <td>80.24</td>\n",
       "      <td>75.11</td>\n",
       "      <td>7.37M</td>\n",
       "      <td>0.0823</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      日期     收盘     开盘      高      低    交易量     涨跌幅  类别\n",
       "0  44446  91.14  90.80  93.47  90.43  6.80M  0.0604   1\n",
       "1  44442  85.95  84.93  87.26  84.55  3.03M  0.0265   2\n",
       "2  44441  83.73  85.47  86.48  82.46  4.26M -0.0098   3\n",
       "3  44440  84.56  82.52  87.49  81.75  9.11M  0.0540   1\n",
       "4  44439  80.23  76.27  80.24  75.11  7.37M  0.0823   3"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "41e483be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>收盘</th>\n",
       "      <th>开盘</th>\n",
       "      <th>高</th>\n",
       "      <th>低</th>\n",
       "      <th>交易量</th>\n",
       "      <th>涨跌幅</th>\n",
       "      <th>类别</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2021-09-07</td>\n",
       "      <td>91.14</td>\n",
       "      <td>90.80</td>\n",
       "      <td>93.47</td>\n",
       "      <td>90.43</td>\n",
       "      <td>6.80M</td>\n",
       "      <td>0.0604</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2021-09-03</td>\n",
       "      <td>85.95</td>\n",
       "      <td>84.93</td>\n",
       "      <td>87.26</td>\n",
       "      <td>84.55</td>\n",
       "      <td>3.03M</td>\n",
       "      <td>0.0265</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2021-09-02</td>\n",
       "      <td>83.73</td>\n",
       "      <td>85.47</td>\n",
       "      <td>86.48</td>\n",
       "      <td>82.46</td>\n",
       "      <td>4.26M</td>\n",
       "      <td>-0.0098</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2021-09-01</td>\n",
       "      <td>84.56</td>\n",
       "      <td>82.52</td>\n",
       "      <td>87.49</td>\n",
       "      <td>81.75</td>\n",
       "      <td>9.11M</td>\n",
       "      <td>0.0540</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2021-08-31</td>\n",
       "      <td>80.23</td>\n",
       "      <td>76.27</td>\n",
       "      <td>80.24</td>\n",
       "      <td>75.11</td>\n",
       "      <td>7.37M</td>\n",
       "      <td>0.0823</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          日期     收盘     开盘      高      低    交易量     涨跌幅  类别\n",
       "0 2021-09-07  91.14  90.80  93.47  90.43  6.80M  0.0604   1\n",
       "1 2021-09-03  85.95  84.93  87.26  84.55  3.03M  0.0265   2\n",
       "2 2021-09-02  83.73  85.47  86.48  82.46  4.26M -0.0098   3\n",
       "3 2021-09-01  84.56  82.52  87.49  81.75  9.11M  0.0540   1\n",
       "4 2021-08-31  80.23  76.27  80.24  75.11  7.37M  0.0823   3"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将Excel日期转化为pandas可处理的日期\n",
    "def convert(x):\n",
    "    delta = pd.Timedelta(str(x) + 'D')\n",
    "    x = pd.Timestamp('1899-12-30') + delta\n",
    "    return x\n",
    "df['日期'] = df['日期'].apply(convert)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b8634c6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>收盘</th>\n",
       "      <th>开盘</th>\n",
       "      <th>高</th>\n",
       "      <th>低</th>\n",
       "      <th>交易量</th>\n",
       "      <th>涨跌幅</th>\n",
       "      <th>类别</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2021-09-07</td>\n",
       "      <td>91.14</td>\n",
       "      <td>90.80</td>\n",
       "      <td>93.47</td>\n",
       "      <td>90.43</td>\n",
       "      <td>6.80M</td>\n",
       "      <td>0.0604</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2021-09-03</td>\n",
       "      <td>85.95</td>\n",
       "      <td>84.93</td>\n",
       "      <td>87.26</td>\n",
       "      <td>84.55</td>\n",
       "      <td>3.03M</td>\n",
       "      <td>0.0265</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2021-09-02</td>\n",
       "      <td>83.73</td>\n",
       "      <td>85.47</td>\n",
       "      <td>86.48</td>\n",
       "      <td>82.46</td>\n",
       "      <td>4.26M</td>\n",
       "      <td>-0.0098</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2021-09-01</td>\n",
       "      <td>84.56</td>\n",
       "      <td>82.52</td>\n",
       "      <td>87.49</td>\n",
       "      <td>81.75</td>\n",
       "      <td>9.11M</td>\n",
       "      <td>0.0540</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2021-08-31</td>\n",
       "      <td>80.23</td>\n",
       "      <td>76.27</td>\n",
       "      <td>80.24</td>\n",
       "      <td>75.11</td>\n",
       "      <td>7.37M</td>\n",
       "      <td>0.0823</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          日期     收盘     开盘      高      低    交易量     涨跌幅  类别\n",
       "0 2021-09-07  91.14  90.80  93.47  90.43  6.80M  0.0604   1\n",
       "1 2021-09-03  85.95  84.93  87.26  84.55  3.03M  0.0265   2\n",
       "2 2021-09-02  83.73  85.47  86.48  82.46  4.26M -0.0098   3\n",
       "3 2021-09-01  84.56  82.52  87.49  81.75  9.11M  0.0540   1\n",
       "4 2021-08-31  80.23  76.27  80.24  75.11  7.37M  0.0823   3"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 直接使用lambda函数也可以\n",
    "df = pd.read_excel(\"pydata05_1678066125986.xlsx\")\n",
    "df['日期'] = df['日期'].apply(lambda x: pd.Timedelta(str(x)+'D') + pd.Timestamp('1899-12-30'))\n",
    "df.head()  # 查看结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "84df3492",
   "metadata": {},
   "outputs": [],
   "source": [
    "from statsmodels.tsa.arima.model import ARIMA\n",
    "\n",
    "# ARMA模型\n",
    "# df = df.sort_values('日期', ascending=True)  # 时间序列升序排列\n",
    "data = df['收盘'].to_numpy()\n",
    "model = ARIMA(data, order=(1, 0, 1))  # order=(p,d,q)。1阶AR和1阶MA\n",
    "result_model = model.fit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d66dd515",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x295c4c51b80>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA/hElEQVR4nO3dd3hUVfrA8e9JJwVS6DWhdwEDqCgqiCAioKDCqoBlYW0/17Wsrg3bruhaVhEUKxZUmooNaQJSlC5FSugE0gmkt5n398cdhgQSUiczCe/neeaZmXPbO5fwzplzzz3HiAhKKaVqFy93B6CUUqrqaXJXSqlaSJO7UkrVQprclVKqFtLkrpRStZCPuwMAqF+/vkRGRro7DKWUqlE2btyYLCINilvmEck9MjKSDRs2uDsMpZSqUYwxh0paVmqzjDHmQ2NMojFm+xnl9xtjdhtjdhhjXi5U/rgxZq9j2eDKha6UUqoiylJz/xiYCnxyqsAYcyUwAuguIrnGmIaO8s7AGKAL0BRYYoxpLyK2qg5cKaVUyUqtuYvISuD4GcV3Ay+JSK5jnURH+QjgSxHJFZEDwF6gTxXGq5RSqgwq2ubeHrjMGPMikAM8LCLrgWbAb4XWi3WUncUYMxGYCNCyZcuzlufn5xMbG0tOTk4FQ6wdAgICaN68Ob6+vu4ORSlVg1Q0ufsAYcBFQG9gtjGmNWCKWbfYwWtEZAYwAyA6OvqsdWJjYwkJCSEyMhJjittt7ScipKSkEBsbS1RUlLvDUUrVIBXt5x4LzBfLOsAO1HeUtyi0XnPgWEUOkJOTQ0RExHmb2AGMMURERJz3v16UUuVX0eT+DTAAwBjTHvADkoEFwBhjjL8xJgpoB6yraHDnc2I/Rc+BUqoiytIV8gtgLdDBGBNrjLkT+BBo7ege+SUw3lGL3wHMBv4EFgL3ak8ZpVRVSk2FL790dxSer9Q2dxEZW8KiW0tY/0XgxcoE5QlSUlIYOHAgAPHx8Xh7e9OggXUj2Lp16/Dz83NneEqdt769ZAq+u7ayp9fntG/v7mg8l0fcoeqJIiIi2LJlCwCTJ08mODiYhx9+2Lm8oKAAHx89fUpVtwm7HgNgc+bnbo7Es2l2KocJEyYQHh7O5s2b6dWrFyEhIUWSfteuXfn++++JjIzks88+48033yQvL4++ffsybdo0vL293fwJlKo9Gjd2dwSercYk9yuuOLvsppvgnnsgKwuGDj17+YQJ1iM5GUaPLrps+fKKxbFnzx6WLFmCt7c3kydPLnadnTt38tVXX7F69Wp8fX255557+Pzzzxk3blzFDqqUcoqNHkn2jn00DnZ3JJ6txiR3T3HjjTeWWgNfunQpGzdupHfv3gBkZ2fTsGHD6ghPqVovaNwofP/vIW659gQLVoa6OxyPVWOS+7lq2oGB515ev37Fa+pnCgoKcr728fHBbrc735/qjy4ijB8/nv/85z9Vc1CllJP9vQ9oRCIjfn0I+MDd4XgsnayjEiIjI9m0aRMAmzZt4sCBAwAMHDiQuXPnkphoDblz/PhxDh0qcWROpVQ5+O7eBkCLRvlujsSzaXKvhFGjRnH8+HF69OjB9OnTae/ol9W5c2deeOEFrr76arp3786gQYOIi4tzc7RK1Q5181IA+Ln5nRT64azOYESKHfqlWkVHR8uZk3Xs3LmTTp06uSkiz6LnQqlCHHdt92Ydb6zqTb9+bo7HjYwxG0UkurhlWnNXStVIffmdHTvcHYXn0uSulKqR+vI7MTHujsJzaXJXStUoia0vAuAy7zWkJLu/WdlTaXJXStUoDZ+7D4YOJdK2n/r7KzzobK2nyV0pVbPccgvMmoXNy4eb6nzn7mg8liZ3pVSN8toDhxh4STbeo64n+voWpW9wnqoxd6jWdJGRkWzYsIH69esTHBxMRkaGu0NSqka6+bNhtM9oh2yfT24uBNhsfPp+LqFNA7nuOndH5zm05q6UqjmOHKHZ8e1k53nzyCNQpw5w333c9rcghg93d3CeRZP7ORw8eJCOHTty11130bVrV2655RaWLFlCv379aNeuHevWreP48eOMHDmS7t27c9FFF7F161bAmuzj6quvpmfPnkyaNImSbhZ75ZVX6N27N927d+eZZ56pzo+nVM1zwQUA2PBm7IKxLOYq4tICyfIKYtAgN8fmYWpOs4ybxvzdu3cvc+bMYcaMGfTu3ZtZs2axatUqFixYwL///W9atGhBz549+eabb1i2bBnjxo1jy5YtPPvss1x66aU8/fTT/PDDD8yYMeOsfS9atIiYmBjWrVuHiDB8+HBWrlxJ//79yxSbUued1FQAwkilYbeO9Iz5ikOpHQgx3uTmujk2D1OWOVQ/NMYkOuZLPXPZw8YYMcbUL1T2uDFmrzFmtzFmcFUHXN2ioqLo1q0bXl5edOnShYEDB2KMoVu3bhw8eJBVq1Zx2223ATBgwABSUlI4efIkK1eu5NZbrZkIr732WsLCws7a96JFi1i0aBE9e/akV69e7Nq1ixi9K0OpEk3kXQDaswe/qGZ4IYT+uYZgWxrJK/V21cLKUnP/GJgKfFK40BjTAhgEHC5U1hkYA3QBmgJLjDHtq2SSbDeN+evv7+987eXl5Xzv5eVV4lR7xjH2xannkogIjz/+OJMmTapQbEqdV+LjmYH1f2UJVzEqwJpXwTvb6pzQksNYqUdBGWruIrISOF7MoteBR4HCjckjgC9FJFdEDgB7gT5VEain6t+/P59/bs3luHz5curXr0/dunWLlP/000+kOn5OFjZ48GA+/PBDZ8+Zo0ePOocJVkqdISnJ+fKReu8RGmFVrIJ7tQPg9muTit3sfFWhNndjzHDgqIj8cUbttBnwW6H3sY6y4vYxEZgI0LJly4qE4REmT57M7bffTvfu3QkMDGTmzJkAPPPMM4wdO5ZevXpx+eWXF/sZr776anbu3MnFF18MQHBwMJ999pnO2qRUcfLynC8HDACvXj3gvvswjz0OzZtRL0+Te2FlGvLXGBMJfC8iXY0xgcAvwNUictIYcxCIFpFkY8zbwFoR+cyx3QfAjyIy71z71yF/z03PhVLAmjU4x/cVQQQefRT6XSIMvcGf13mQB7KnEBDg3jCrU1UP+dsGiAL+cCT25sAmY0xjrJp64VvGmgPHKnAMpZQqyjGN5f57XwXAiJ3pb+Ti/erL+JFPKmGsX+/OAD1LuZO7iGwTkYYiEikikVgJvZeIxAMLgDHGGH9jTBTQDtCRfZRSlVaQafV1tPW9xCr46CMyCgLocOhncnyCmM8NBAe7MUAPU5aukF8Aa4EOxphYY8ydJa0rIjuA2cCfwELg3sr0lPGEWaLcTc+BUpbMy4bgSx7fJzr6aHhbvWW88vMIKMhkm28v6tc/xw7OM6VeUBWRsaUsjzzj/YvAi5ULCwICAkhJSSEiIqLULoW1lYiQkpJCwPnUiKhUCXLzDAX44l/HUeDohpyXYV1o9aGAFjqOmJPH3qHavHlzYmNjSUo6v6+ABwQE0Lx5c3eHoZT7rV7NVGYRkv88EO6suZsCK7kbWwEFBc6cf97z2NPg6+tLVFSUu8NQSrnZ/hgb/5vqzSN1t3Mv05hrnrAWOLJ4k+hmsPoPvOw2VqwUrhxwfv7SP5MOHKaU8liSlEzr9j5kvPkBR/ZaF1S9gxzNlJ06weOPs+fRD3iK5wAoyLO7K1SP47E1d6WUkj+2YoBjNCUiaBsAV13rGBKka1febvZv5rwGaVxLPI0ZVfmBTmoNTe5KKY/lZcsH4ASheOVbNfeQ+o7knp/Pup/SGL3iGVrUS2PkyU8YoZ3LnDS5K6U8li0nH29gAh9z/Hgz8vyCiD/mQ8uWwJIlzPxhKCe8wgisE0L0yfXYcnuiac2ibe5KKY+VddKquY+rM4cT9z+Nf14Ghw45FjouqIbaU/GLP8x6+tCp6Uk3Rep5NLkrpTxWfrA1D4K3FJBv5Xmco3A7ukIW1r51QTVF5vk0uSulPFZm7yuYyTjic8OwvfEWL/FP/PwcC4tJ7llpmtxP0eSulPJYBQWQShihkkrDPxYzmJ9P19yLuR31xwWa3E/R5K6U8kyffEJUa8Pf+R91SScwJ4VUwk7X3Fu3xrZydZFN7PnaF/IUTe5KKc/06afOl004RpOgNC4eGkarVqdXyalrTWyTSSBj+ILMwAbVEpocPsK0xw+za1e1HK5CtM+QUsoj2Rs1dtY+8/AjIPsEAY1Ci2StoAvaWs9k8RVjuOzsZniXkC5dGZERzJDvj7JtW/Ucs7y05q6U8kiHXzhdc3+HvxGQlsDyPU3JzT1jxR9+IHPmHK7gF0hLq5bY0kOa8BsXkZVVLYerEE3uSimPtG8f/JOXALiRucy+azFXrn6Bs6Y4GDoU/7oB/MIArmy6u1piM+lpHCecCROq5XAVos0ySimPFPnYGG4ihhPUI5STSLY1zZ7zgmohPoFWYee2eWcvdIG6+cf5K++DrRkwuVqOWV5ac1dKeR4R2mz4CunQidtbLgPg1s+GcLn3KryKy1qOjH88Id/1sWVn42wbSkhw/fEqSJO7UsrzbNgAQPTuz/l6YR1ncYRPCcML+PoCMO+Laqi52+383PdpAL75LMP1x6ugssyh+qExJtEYs71Q2SvGmF3GmK3GmK+NMaGFlj1ujNlrjNltjBnsoriVUrVY/knrSuWia16HOqeTe6ZfWPEbOGrutpxqqLkHBTF6x7Ns4QJ8stPPvgbgIcpSc/8YGHJG2WKgq4h0B/YAjwMYYzoDY4Aujm2mGWOqqXOSUqq2yAxqyDTu5tiF10FkJP/XdC4AXy8OLn6Ddu24LfQ79oVFl+s4ycmQmlq+2CQnlzoZiZzwbUikbS8HDpRv++pSanIXkZXA8TPKFonIqft8fwNOTfI5AvhSRHJF5ACwF+hThfEqpc4DJ5t24l6mYY9qA0CQr9XcUifUv/gNQkNZETKMZO9GZT6GCDRoAH3KmaHyl64kkUZkNGrDSvpz6KBnVt2ros39DuAnx+tmwJFCy2IdZWcxxkw0xmwwxmw43yfBVkoVlZGajzcFBDsq6o8fux+Az+fXKX6DrCyuKfiOkNTDZT6G3SZ8yc1E7/2iXLHlpVm9djb0uIt7mcbxVM+cs7VSyd0Y8wRQAHx+qqiY1Yr9WhORGSISLSLRDRpUzy3DSqmaofl30ynAl+7NrUaDkKbBfFfvVuatb1n8BsnJvBs3nLvbLy3zMbzXreVmZjO0yZYyb2OzQWqcldybtw3gnruFVi1rWc3dGDMeGAbcIuK8pBALFB6qrTlwrOLhKaXOO6+9Rr2nHwCgY7RVdTeNGhGck0R4eAnbOHrLdGp95u2rJbDbsV81yNo0v+y3mc4fMZMTD1mTcd/VbgVvT/ci2vZ7mbevThVK7saYIcA/geEiUvjMLADGGGP8jTFRQDtgXeXDVEqdNx56CAC7jy82b8cdS+vWcWXuzzQIzCx+G8esTPFHyzgqZHIyXtlW6vLKyy5zaDf+MIFuODoOBgUBkJ3umcMMl6Ur5BfAWqCDMSbWGHMnMBUIARYbY7YYY94BEJEdwGzgT2AhcK+I6BicSqkyy/EOBOBEQTAHDxZd5l+nhJTluLNpzpdlTDdxcc6Xo64p/wAxzwS8RMyJ+gC89bpnJvdShx8QkbHFFH9wjvVfBF6sTFBKqfNXTJP+dItdSAbBhIQUXeYXXMzYA+CclclWYC/TMezHT+AF2I0X3qF1y7SNzQbpLbryy5G2PJfzT67JX0U7Ts/z6mn0DlWllEfx9rPqnFO5z5ncN1/7JHYMt00o4baZ4GAeu2g5i0JGl+kYBdlWQp7UYQWP1n2n9A0yM4ltfhG7jwQSQzui2I9voNXO76lT+2lyV0p5lNgmvQF4lYcICLDK/EweefiRXVLzuI8Pe5pczhFpXsIKMHv26RGB8zt240Zm8/WujkydWoagtmyhVfzv9GUdj/IKe2iPadqE79r8nV3Zp2cPmXr/brrXO4TNAxqjNbkrpTxKvs3qUV2HbIyjc3VAWhIB5JKTU8JGBQUMiPucluk7AFj1qxRJsAen/cBNNxv+cZt1T41fi0bc+dONvHvBNF7L/hv24lpzjh93jnFzqjfOH3QHwI4XXpEtWXDl62zI6uzc5L6pHdmaFukR44lpcldKeZRrf7MG5fp48JfOsqjv32L9vMN0717CRgUF3Pfbrbx2xQL23P06l/b3YuqU0z1rmr36DwC6hRwEwDc5jiHei+mZ+zv9WUlmcZ1w7rsPevemU4sMbCetAcIuYCsAfuQTGGDnhsGZ/OP+s9vc86pn5OFz0uSulPJIo186PU6MV0gQvW9oUfLKjguqHdrZaf+OlcgT/ogHIP1YOuuaXg9AeH0r5eUu/AWuvhqftOMEkkVGcYM7OgYj2xUbzOZfz16hvdderrkxmIdbzTlr2VmzRbmBJnellEfJDalPaqMO0KNH2TdydIU8ut66Z/IZJpPe0BqXJuPKYfRbNQWAtCQr655MsqrWibn1qEN28TX3wEBSvK275//9dr2zlzv61qckFFg19ULtQFpzV0qpM+TkGRblX1m+jRzJfde3uwDo+8DFPPGEtajJnpUAnKAe6TarD70912pKadC2Ho2Cs2jbtrhAcoiwJfEzV/NIwFtFFs3jBrLyrOT+6D/y+fNP4NAh53KtuSul1Bl8bLnYfEoY/bEkxmDH4IWd3aYDV617kcY7HOPMREQAcDkruGtqDwBsOVbVOrtpG2jXrthd5mVYGfpqFtOiQTZpkd0o2LyNfpcIo5mH8bMusvpQwDezsljcZhJJvk1Jqd+epk3L+aFdQJO7UsqjHAjqRlJgZLm3e2/iBm7hc3rKJvzWrmTx879ZC5Yvh0WL2GK/gPrWTaXOmvv2oY9yR49NfPfd2fs7eOtTLOA6AALy0qjbIhSfHl35/ntYtgzqhFg1dx8KiPr4GQaxhE35XYlI2q3JXSmlznR3t1V8G/X3cm93PLIXr/IQP3ENecaP1is+5Ngx+Gh9V258JJJ93u14eeBCAJL7jeQafiSwYTCffgpr1py9v32+HdlCDwDq71xFYoY13HBYGFx5JRAURNoDT7GJXoxP+i8AXdjBVVdBVvlHNKhymtyVUh4lNxf8y9kqA9Br8wdcw0/UIZvsDj3woYAlS8AsW0q9P1bSVvZy47K7AWh7VSRP/HoNl2X8xHqvvpyMSTxrfwErF3GD+dr5fs3mM8aSDwyE554jjibOorygMN5e2oHlP7o/u2tyV0p5jvR01ub0YP7oWeXedPCcuwjlJH1YT8i1l9OIBBb9LAxY8i+eMc8CEMVBCgogZO9mLj3xPSEFqfTIW0fq4fSz9nflqufpKtYIkO9xF08UM2RWkGQwffC3AIysvwq/SbfTgT1InvvHm9HkrpTyHNnZeG/7gzq5Jyq1G6/OHVnfchTrV+Xin3mc/X4dncvS0+HEq++T85fbycLqPTN8/ZOcNSFcejq2+g0B+Cvvk+N79gBj3uNv5Zqf/06eTx36TOyBcXSPtOW5f/wBTe5KKc/h6EO4fmv522XEp9Agt3fcwf7nPieqUwDB2YkcrduZvf3GEUszkpMh6UAGcenBnGxiJf2xfEmIX9H+iyePpJGWfnpyuefea8JZOlrbezWsz79eDMLL17qZSvLdP5iYJnellOdIt5pHtu4PLvempqBoQh0/OpOFH8cTVJBG3bYNCW4RTgQprLnxddqt+YQMgvG/sCt8/TX0709AdmqR7b3ST3JUTk8B3fviYkZI79ABgHcCH8JuB+PrOTX3UsdzV0qp6iIn0zCAd1jZxlgvzrcMZwTAzTfDokUADHugDfnb8/Elh/F/WMMTZBFoTcA9ciQLvEZi/w1GjjwViOBfkMHmZoPpeml7aNqU9u2LOZij5r5wbxvGZUBwl1Yc7DyU7hf6Vjj+qqLJXSnlMXLxZw1XYm9UTBNIKfYPf4DWC/5HPlZiPXTMh3xpTaPlswjpFolvvaJDCASReWr4GJ57Dho2tJK73Q7x8YbLvGO487I0mNW15IO2sYY4GM1c/P2H4T96CMGjh5Q7dlfQZhmllMc42bonA1lGbqce5d5WQq3Zsxf7DAUgX3zJLfCm3c29+O+H4TBkCCdffd+5/qs85NhQmLerC0O3WePPrOt9L782u5n9BS1pde05EjtYnd6BYXyPnx/k58O2bZCSUu7wq1xZ5lD90BiTaIzZXqgs3Biz2BgT43gOK7TscWPMXmPMbmPMYFcFrpSqfU7d/BMYWP5tI2dbyfnmn++wCnx86MKfXJIw/1RTPvX+fjv2mZ9aiyMcNXljCM9PIDTtMNhsXLRpGjczmwdCPqRTp1IO6uvLWi5iE70wBtI/+5aI7k1ZNG1v+T9AFStLzf1j4MzfGY8BS0WkHbDU8R5jTGdgDNDFsc00Y0wJ82IppVRRUXNext6xE+NuLdtcqIV551jfDPHWSL+IY4KN+5h6qoINXl54XWPVOW/ynu/cNrtOGAHZxyE3l33eVuP6GwO/o1ev0o/bl99pyWErhoJcmhLnESOHlZrcRWQlcPyM4hHATMfrmcDIQuVfikiuiBwA9gJ9qiZUpVStt38/JiUF413+FmNby0hmMo5Ex82msX1GAZBGXVq2LLSiY4CZCxrGOYvEPwCv/FzyfQPpyWZW9nkY3nuvTMf1QujIbuu1oyukPd/9vWUq2ubeSETiABzPDR3lzYAjhdaLdZSdxRgz0RizwRizIemsuweUUuejrP3xxNoas21b+be1ixfe2IiNtd573zCCGNqSRSCRkYVWNAb276fh2m+dReFN/LlmQC65+49it9n5bdQrzi+BUk2ZAnOsCTu8HJN7S4H7k3tV95YxxZRJcSuKyAxgBkB0dHSx6yilzi+2Y/H8ebwxcgy6dSvftr5H9nMr+5mx7jMA+nc/AezlQIvLiyZ3gKiootsOHohvUBDyxAOcbL2VzL/tKfuBH33U+bI23MSUYIxpAuB4PjXqTixQeC6s5sCxioenlDqf+CbHE09jZxfF8si57a88wsv83/85CiZPBuDq64MIDz/3tkf/bwoT9j9NxsrNeF/Yg7oV7GbvG9mMA31upu+QsNJXdrGKJvcFwHjH6/HAt4XKxxhj/I0xUUA7YF3lQlRKnS9Sel7FSvpXKLkHfDKDV+QRRo+23h88al1Q/eP6yaVum5gIq2buJSRpP6tTOpa6fkl8evck6vcvaT+0uKmdqldZukJ+AawFOhhjYo0xdwIvAYOMMTHAIMd7RGQHMBv4E1gI3Csi7m98UkrVCFvue58PuKtCyf1Mdi8f8vBl9F9Lr0W3+8/t7MWakWlDcmSljrt2LRw+XKldVIlS29xFZGwJiwaWsP6LUMzYmEopdS4iiB1CQkyFxnM/U0BaIn7k08ErBih+Kr1T6hzc6Xwd3DSk4gdds4Yu/YYw97YF3PHJFRXfTxXQO1SVUp5h+XKGjQkm7ee1dO9e+d35X2x1Ur97Qnap63qv/935Or5JGTq3l0SEuqRDXl7F91FFNLkrpTzD9u3WLarB5R8RsjgRT98LGRlc+3gZvikc3WlW0Y+0Bm0qflDHjVN5mTpZh1JKWRzdXB76l3/V3eAZFFS29daswRZcl0tZTaPAs2dlKjPHxYKsk5rclVKqiO8W+lbJBdVyadKErPH3AHBf3/UV348j8GMH8zh6tCoCqzhN7kopjxIS7osp7nZIF1vlNwCA1IxKjMUeHs6xa+7k1yOtaN68igKrIE3uSimP4hdRid4qlVA35QAAC5dV4mdD48Y0/fF9Xmv0Mv9pOf3c6yYlwYkTFT9WKTS5K6U8inMo3mrW/ceXANh/pHKzKO3dkUu/hPlcd3Q6GzeeY8WGDcmt35SPPqrU4UqkMzEppTxKixalr+MK4m2lw1x7JZJ7Sgptu1oDjnWxbcNEg5xj5Cx/WzaHDlX8cOeiNXellEd5+zX3jIWe2PlyAFL8m1Z8J2dcCQ7yKfmzZHfvw08MOTVTX5XT5K6U8ij16rtncunAHh0A6NqrEm3uZ9xa+6+CZ7GXMO9ITp43PhRocldK1ULJyayevIhvTw+tzs+L3ZOWggpOANCx8YmK78S36BdTMBkl9tkP27WWQLJo66IxxrTNXSnlPvfcQ785c4jkACMcRQcPuieUepPGQtxuBo9vXPGdnNGH81Ryr1PnjPVEEGPYFjGASxpU/HDnojV3pZTb2NKteU+H8b2zzB193AHo0sWaUcm3cs1COQ/8ky1cAECYT0bxg6Dl5WFE+Nu93i77vJrclVJuk+pt9SyZOO5024WrmimqS8AbL9GwuZXRL2x78uxaO0BGhvX87LMui0OTu1LKbfYOnMRfI+YT+MSDALzKP7jqKjcHVUnZOw/i6yNk+IbCsGHk5Jy9Tu7RZJfHoW3uSim3uejBi4mPgjFj7Fzf4A0Soi5yd0iV5nX/vTQ4uJ6RfM23/x3JH7dx1hDGcz/N5hYXx6HJXSnlPqtX0+s/b/DV5k38+OY+Lunq7oAqzzSz+sk3Jp4Ikjl2OJTu3Yum2rb7FwFwLLwLlehVf07aLKOUcpuT19xMy3VzacN++ucu5sor3R1R5XnfYPX7uTR4C8k0IGn1nrPWaZ+/HYBG4QUui6NSyd0Y86AxZocxZrsx5gtjTIAxJtwYs9gYE+N4dv804Eopj+SflUqcdzMALnjkao78etC9AVUB7xHDWD0/gWs/vgmAa1+6lJtvLrpOmG+mte49k1wWR4WTuzGmGfB/QLSIdAW8gTHAY8BSEWkHLHW8V0qpovLyCLBlsbbpaABWchnfbYt0b0xVpN/1DQlrEw5AOKk0SS9ae88/mUlujz7I3x90WQyVbZbxAeoYY3yAQOAYMAKY6Vg+ExhZyWMopWojx3C3qfXbwcaNtPpzIZNcV5GtfuHhzpfPrxtMZubpRXF7M9myBfLjXNdrpsLJXUSOAv8FDgNxwEkRWQQ0EpE4xzpxQMPitjfGTDTGbDDGbEhKSqpoGEqpmio1FQAJC4NevWjVKRBvbzfHVJUank59N6ZM59tvQTIy+abNQ+w52Yi+rMP3wm4uO3xlmmXCsGrpUUBTIMgYc2tZtxeRGSISLSLRDRq46P5bpZTnataMf3b7Eel/hbsjcY2AAOb2eIH+rOBnhpCRARn//h8j97/G4hO9ec/nbkyBZ15QvQo4ICJJIpIPzAcuARKMMU0AHM+JlQ9TKVWrZGURO/hOtmS2Y/zjruoM6H6p9zxB/R4teJDXMIkJHGnSF4CgMH/ExwdsNpcduzLJ/TBwkTEm0BhjgIHATmABMN6xznjg2xK2V0qdrzZupPma2fy8vx2HdmW7OxqX+etfYdbTu3iNhwiIO0BSu0sAeDr1QQbnfw+eWHMXkd+BucAmYJtjXzOAl4BBxpgYYJDjvVJKnVZo7tDF89PdF0c18K1rDS4jWdmY+DhneVi4cWlyr9QdqiLyDPDMGcW5WLV4pZQqlr3fZSy88SOSlu/g1gdr9zU372AruXeOyqbr16d7hte9fwIEBLjsuHqHqlKqeqWns6zxWNbTm/GJr1C3nrvG+K0mjmEho7tkE5B9wlm8p+fN8MgjLjusJnelVPVKSOCq/IXcMWeIuyOpHo7aed7JbPISUp3FV10XAPv3n3sG7UrQ5K6Uql6RkQC0INa9cVSXqCguanaEu5eMIifhBABruJg3es6ENm1c1mNGk7tSqlrlLFzu7hCql68v3q2acyC+Dr6ZJ5jG3TQ7uIYbbnLM+OSii6qa3JVS1crrvrtJpAFPjYlxdyjVo6CAB9Keo/Gelfw6djozGY+fHzhvx9XkrpSqDSQ9g28YycBJNXw+vbLy8uKm7c/QKeEXdnUdzTr6Wsndx9FZUZtllFK1gcnOJps6tGjh7kiqiZcXNm8/6hWkUGftMuqTZM3BfSq5a81dKVUbeOVZyb15c3dHUo3q1GF4mx389cuBLHt6BUFBwOWXw9SpFD+DduXpNHtKqepjs+Fjy8MrqA7+/u4Opvp4hwQSKQcB6HZZqDX7RffuZ0+uWoW05q6Uqj7GcGLeUkbMLvMAsrWC9Olj9WkHth4OtQpTU+GPPyAvzyXH1OSulKo+Xl6E3jCADkPbuDuSaiUz3mcKjwIw68dQq3DBAujRA44edckxNbkrpapPRgZL7vqS1bMOuTuSauXVsD7/5GUAmnR2TCutF1SVUrXG0aNc9cFY9ny4yt2RVLtM7xAK8KZ511CrwMX93PWCqlKq+mQ7xm53UQ8RT5ZQvwsxCXVp0tyR1F1cc9fkrpSqPo7k7hV0/iX3Fie305oMYk6NcOzim5g0uSulqkXGl9+z94MV9ABM4PmX3H18DeQ4x02DXr1g5kxcdTeXJnellGslJZE0+BYabF5MD0eRV/D5l9zN4cOQl2fdnQrQsiWMG+ey4+kFVaWUa23cSIPNi51v/3bBWoY/1sWNAblJaCg0bHj6/cmTsGqV9ewClUruxphQY8xcY8wuY8xOY8zFxphwY8xiY0yM4zmsqoJVStVAjRsXeWszPtRtGuymYDzIpk1w2WWwZYtLdl/Zmvv/gIUi0hG4ANgJPAYsFZF2wFLHe6XU+apHD7DZ2PHkFwCM2/Igdrt7Q/IIntrP3RhTF+gPfAAgInkicgIYAcx0rDYTGFm5EJVSNVnGiQI+nmmoN2kMcQ26ccSvLV7aIOzR47m3BpKAj4wxm40x7xtjgoBGIhIH4HhuWNzGxpiJxpgNxpgNSUlJlQhDKeXJ0h58hjF31GHTBjtNErfyl9yP3B2SZ/Dg8dx9gF7AdBHpCWRSjiYYEZkhItEiEt2gQYPSN1BK1Ug5e4+QQCPad9TqehEeXHOPBWJF5HfH+7lYyT7BGNMEwPGcWLkQlVI1Wlw8x2hKVJS7A/EwbdrAvHnQu7dLdl/h5C4i8cARY0wHR9FA4E9gATDeUTYe+LZSESqlajSTn0sOAefV+O1lEhoKN9wATZq4ZPeVvYnpfuBzY4wfsB+4HesLY7Yx5k7gMHBjJY+hlKrBjK0Auwl0dxieJzMTfv0VunWDZs2qfPeVSu4isgWILmbRwMrsVylVe4Tfdwu+uX7uDsPzxMXBNdfAJ5/AbbdV+e51+AGllEvVfewe6ro7CE/kwb1llFKqVCsWnOSjt7PcHYbn8eDeMkopVar24y8i/KHb3R2G59Gau1KqJvOyF2D30hbgs3jq8ANKqdpr2jQYOrRq9uVly9fkXpx69WDRIhg+3CW71zOulDpLm3sH04IbsNkmOZuGK8rLXoDNOYi5cvLzg0GDXLZ7rbkrpYrKyWEwi2jKMY4dq/zuvO0FiNbcz2azwZw5sHOnS3avyV0pVVRsLADP8BypqZXbVcbA4YTmJhBxZfcqCKyWKSiAm26Cr792ye41uSulisjdF+t83aG9VGgfyXtPcGBtPMHLvgNg7/HwKomtVtHeMkqpishNzWLZV0nw229w9GiZtklLg7uGHHG+9ye3+BXz8th/2zMUvDmN7Owzltls1G8Xhv8lvWDUKADiV+yqyEeo3U4Naq+9ZZRS5ZHaNpoBYxrCxReTO2wUUoZKeOKy7XzK6Umbd61PL3a9pCkf0vqz5/B54F6e6/VNkX0nPvIyAE2JI/HtOQC04Ehxuzm/GWPdyKTJXSlVHo2Pn75Q9+SWUezZU/o25jtrENdZjAVg1Ucxxa4nm7c4X/9l11MkJ59e5rth7ekYGguP35dOxxUzyhH5ecTHR5tllFLlcEY1fQ/tWbGiUEFmJrGvfcXihYUSS1ISbT58EoCNXMjr4c+zaG1Isbv3272V1VzCN4wghHQyM63y9VE3Efbrd8718vDjkug8+vWvZH/K2mrlSrj3XpfsWpO7UrVQRqbhMTPF+f4FnmTVL/mnV/j8c5o/NIZB1/hgz86FvDyS+o1wLn7S5yVyHn6ShbtacezXfSy4eippaY6Fdjv1Dm+jxYgLiXv8LQaylINvLmDm6O/ofdBqhsk3vjzPkxiEei3rVcdHrpn69IEWLVyya03uStUyfz71BZld+3LFu2NJJRQbXnRjO/lr1jvXkYFXOV9nrNpC3hfzaBBzujnF78H7uMnMIY16BAy8hOGL72fmfxyd3uPiMBkZtBzciVaXtiCITK54fQTj552+0/Lom/MZOyiFVMKIaKi19hLNmgWrV7tk15rclapFfvgkhc4v/IVGh9Zxlf+v3H/ZH/RkM1k+IQyPfZs/Ggzk5ct/4IBpTSf+BKBu4l5S84PZThce7bcae1YOQVOepvWHTwAQnm/NlDkuc5p1kPx8TrbtxerYVnTK2shWLigSw2tBT/Haxstpu3g69Umhfv3q+/w1zt//Dp995pp9i4jbHxdeeKEopaqA1doum7lARESSk0XeeUckYdjtzmUxtJGfX/lDBrBEFgdeJ29cu0hWrLAW//hjoX0lJ0tGvSbO7QTkvT7viojIkCEiPXuKyCefWMumTJGTR9PFfjxV8nNtkplhF5vxkvkBY8Rur/azUHM0aSJy110V3hzYICXkVb0nWKnaolCXur+0XM2fQEQETJoE1B0E338EwHa6MnTls1zaejf9w7YTmmUnbXEexvjRp0+h/UVEcKz3SFoteZ/Vrcdx5f4PCF23iN9fiCJ64W9sH/kU3HILDBsGYWHOCTl8AB8/KEjLZIj4YEw1ff6ayJN7yxhjvI0xm40x3zvehxtjFhtjYhzPYZUPUylVqoQEAD5o9xJrtwYVXTZgAEcG38Uh04orm8fg9918vOOP0rgxdD+4gKde8Of1vl8QEVF0s7Y/vUVuYhpX7nufr74UbmQufZ+6mud5muCju60bccKK/y/uExxAnRCtP56Th/dzfwAoPPLNY8BSEWkHLHW8V0q5mBy1LniaLp2pd2YHlUaN2P/4e8igwdSLtdra/bNO8Oa2K3jtwPUAPDDzwrP2aXy8CWkQAMDgwTCz6yvOZc981s4Fn+I846k1d2NMc+Ba4P1CxSOAmY7XM4GRlTmGUqpsMvdayd03smmxyy+/HALvGMN8rieZCN65bzstJ1mDtm/z6QHt259z/6GhMG7OddabV16hbXvtj1FpP/4IL7/skl1X9jfTG8CjQOE7HRqJSByAiMQZYxoWt6ExZiIwEaBly5aVDEMplRDSjv/yDN06R5W4Tr2RV/JQ5JU8+ijcfTdg78TOP/M51PxyupXlIB07wrFj0LDY/9aqvNq57tdPhZO7MWYYkCgiG40xV5R3exGZAcwAiI6OrtjQc0opp8T6nXmj3mS+61jyOv7+cOBAoQIvLzp99gSdynOgJk0qGKGqTpWpufcDhhtjhgIBQF1jzGdAgjGmiaPW3gRIrIpAlVLnEBvLxYkbSU0ehnjpTUOqEm3uIvK4iDQXkUhgDLBMRG4FFgDjHauNB76tdJRKqXPbuRNGjsSsXeMcSVad31zxZ/ASMMgYEwMMcrxXSrlSovUDec7yBm4ORHmKKumEKiLLgeWO1ynAwKrYr1KqbFL3JBEGpPrqhU5l0R9wStUg9kNHWFNvCN9/kOAsy/p0HmHPPQhA2+hQN0WmPI0md6VqELN/H5ek/cy+qT9ZBUlJBI4b7VzeuKn+l1YW/UtQqgYxLa2xvx/YcjsA8b+cvjn8Pe6iUSO3hKU8kA78oFRNkZ/PgZdnc+oWpdyp7xGYWcDyJmM4PmoiDS6/7KyxYdT5S5O7UjVFaipRM/4FwFPNPuT5++9gr093rsj/w82BKU+kzTJK1RSOUR+fafsZk2da9Xfvglx3RqQ8mCZ3pWqIow9YA0wFtG6Kd5Q1HtNhdFwmVTxN7kp5mh07+HX6dpKTixbbdsWQQjjjP7wCWrfm97++R505n7olROX5tM1dKRcoKLDmYSj3LEQi0LUrlwFf3nMzY+RL5yLfXt3YzXVc0szaad8Zd1VdwKrW0Zq7UlWsYO16fHwNU2/9jYJ8x4CnNhu75u0odV6G7B9/cb4ew1ccPQqSlMxDNx4m7rn3uOT7J1wYuapNNLkrVcUSp88D4PZZV7Ei4npWjXiZg1dMoOPornw65dg5t5UffqTAy49EX2vCjQbN/djU925enduKrQvPva1ShWmzjFJVrMHWpRxuGI1JjGdg+rew4PTAqH8eCSlxu+U/ZNJiTzqtrxlE6FvvQuvm+JHPhQfmspaL6Ht98TMsKVUcrbkrVYVuuiIRrx1baTlhAHsenI6tbqhzWQINabjxJ8jOPmu71Ide4IphwYxZehdb/jUHv6hm5O/aR4Z/OACvhz1Px3NMwqHUmTS5K1VVtm5l9opGeBfkse/yOxj42jC8T6bSuJEwiXcI807j4fU3k/n0lKLbHT9O2GtPAZAZ1Ih12+oA4NuhNf5drWnYWvzlsvJfnFXnNU3uSlWRvMPxAHzJzey0d3CWr1oFNy2ZhE/dQAAWTd8HGRmnN/z1VwD+EvYTW0+0ZNKk04uS6rQCYMx4fxdHr2obTe5KlUd+Prz6KqSnn7XIJ+EoAE2nPcWwYafL27aFgQPB69BBjjSO5vrMzyAkhONJjq4zI0cCMG5ya3zOuArWePmXxMcW0Lu3Kz6Mqs30gqpSZZWdTX7L1vgmx5N/JJ6vOzzG1SPqENo0EBIT8brrDgAuuy60+O1DQjjZpR8t4jcAsPHrw9TbvY7dLxzi+pT3GHJ/u7M28fI2NG6mc6Kq8tOau1JlFR/PodwmAMx/J5Hge24joHkE4uPD8fZ9AVha7wZMs5J7tbSa/zp2rMbztg+PoM9rY3jvyYN82fn5CtzxpFTJKpzcjTEtjDG/GGN2GmN2GGMecJSHG2MWG2NiHM9hVReui4m4OwLlwQ4QRbv0TfxBd+rlJvAyj5LV7gKMzUb4yYM8wstseWreOZN0SF3DY62+xIYXUenbAOjAbsaPL3ETpSqkMjX3AuAhEekEXATca4zpDDwGLBWRdsBSx3vPt2QJeHnBnj3ujkR5qO1bCgBIuWgYv/lcyr9+voLwtT/CU08xsfUS3ucuxowpfT9PbB5NV7YDsObqyfwn4U58fV0ZuToviUiVPIBvgUHAbqCJo6wJsLu0bS+88EJxK7tdtra7QQRkQb+XxG53bzjV5sABOXD5eHl74hZ3R1IjZAZGyKs8KCdOnL1s716RFSvKth+7XeSWdr9LgfEWOXCgSmNU5xdgg5SQV6ukzd0YEwn0BH4HGolInOOLIw4odjp2Y8xEY8wGY8yGpKSkqgij4uLi6BYzH4Ds1RvJzHRvONUlbtE2IlfM5J4ZPfj+/XjS0twdkQez2QjIOo4EhVCv3tmL27SB/v3LtitjYPgLfdj20o8QGVmlYSp1SqWTuzEmGJgH/F1EypweRGSGiESLSHSDBg0qG0bFxcRAs2YAxNOIASzjwD67++JxkayYo5w4lgXAsX9/zK9hw5l+ZBgTeReAd/+6nlcj3wRjON71Mvj0U0hOJimwJV9f/4m1k4ICCnJLGfmqFkpbtZXEF97FC2H8Q/WrZJ833QQ9Hr26SvalVLFKqtKX5QH4Aj8D/yhUVrOaZd55R8S6lCpLh/5XBGT2v2PcF09Vy86WlFF3OT+j5Oc7X8+JekRaRmScXlbosemv02TnjU8530+/aq4c9G4tm+gh6Ss2yo4dIm+9lCGp/g1lfuAtkpTk7g9atTJWb5HfL/o/adRI5C3uFQGx16snsn69u0NTyglXNMsYYwzwAbBTRF4rtGgBcOra/3istniPlL33KJkXXEL6PY+yY1kCF719G5ewmoP5zdwdWpVJ/+I7wue973z/F9/ZztdXRqfxjycD4bHHSB0+jiTq82HU8/zyzm7ufK8vtjnzOIHVBmFfspRWtv30ZAvBl1/Iv5/N51+P2QjNTeT6rM9Zf/nDcOhQtX++CrHbOXoUcnKst3mxiSTHpPLOOzC25y62DXucoH49yP9tAwkJ8AqPsPufH2JiYiA62r2xK1VWJWX90h7ApYAAW4EtjsdQIAKrl0yM4zm8tH25o+ae8dFsZ620FxtkwQKrPCxM5OknbdUeT6nsdsmITS3Tqgk/b5akJVtEuneXmEsnyEKuliULMiX3WLJMaL9angp+TVb8nH3Wdrk5p68k//e/IqP7Hpa1C0/I76vzZdBVdjlwxQTrnNWtK3+szZSnnrTL7+/9IQnNe1rl99xT1o8iR//2nCSEtJY476aS2KGfyNNPi6SnW8sTkyTtpGuuaqe+8bFkegVJM47Ifbzp/BtYwgBpSHyRXy/TrvtRdu8WyctzSShKVRrnqLlXWW+ZyjyqPbnb7c7/wPuIErA7f23bL7lEBGTu3UuqN6ZSxP/93yIgb/1ljVVgK+ELKCenSIJa/cpqiYwsefVyy8sTSUk5u3zcOFn88ELp00eK7U1ySvp7s6QeqXIDc2WZ10BZ03C4JDTtIQKSePN98tzDJ2UnHeQt7wdk//5yxGW3yzm7OWVnizz8sBSE1HN+oU/hEed5OkIzmTVLJGHik2IfNVqObzogmZnlOL5SbqDJ/Uw7d4q9Th1JffZ/kp0tsmdPoWVjx4qAfMPw6o2pkLgXP5C1jYZL3LHTySourKMzER3ckOR8vfn9DVZSy84WW75N4uJEdtBJBGSeGSWzZ1uXFapDK3NIPmesvHvBVMnLcXyb5OfLsesmyrLO98qJB54WAfmI8RIQIHL8+Oltj/3jFenhvVVA5Fmstv6Pxy4ssv+cI4lybHWhjJ+WJocbR0t2w5YiIH82GygXtkmVo0cLbWSziS2vQJZcNlkExO7tLTJnjnNx9uqNIjfcIJKY6IIzopRraXI/5bffRHbvlr17Rbo0SpJv5+SevU5yshTgJUsYIFu2iEhennz9tcjvY18XAZnW+0NJSa5ck8HOAffIgnsXFrvs0DWTnIn7l14PyjGf5rJ0Vrw80HOF9aVz8UvSt8/pXx4CkvfCFDlRp5EcpoXMGbdA3rlpqcwKv1emTzlZqTjLa+/Sg86Y5nZ6Quz79sv2VanyOg+cjrVHdPE1fxGJj7PLgQMi9oxMya4TKjYfX9k65gVZ+eZmOW7CrO2Nr2T881l57/bVMpbPRUAyGkSK9OsnGQTKRayR8S2WyrdjZsm+O1+UE95hcgfvywv8S75mhJw8cb7cxKDOB5rcT3EkmLtvS5egIJGYEjrFxNVrXyR5TuQdyTH+zvcfXDWrxEMcOyZywQUiW7cWKjxyRARk19JYWbQg27mfN0b/Kna7SH56tlX7dqyXj3eR4wtI1rptp+OLE1n3dawc6nKNCMh/L5xl/dI4tb4ba6GZPy2XP+r0seJo2lTuvuJPAZFvbpkty+qNlK3Lytit5tlnRUC2tb5OvCiQIfwov3pf7vyMffhNJvKO3FH/Wzl0yNokdvGfMqjLUckiwLnemqajpFeHDBk2TOS111z2sZVyC03uDl+1edz5n/4eppa4XvqhFJn/zJYiyXV6s+dl96PvS4p/Y/nRf2SJzbsbBj4iD/GK/P6bXSQvTx4etV8WTvhCBKQALzlMc/m53b3O/c4bNN35evnA5+TTVv+SL57dLZKTIz8PnOJc9sPXxfzKcPj6a5E33hDnutlZbq6dFhRI0rwVIvXry8J7vpX776/APk6eFJk1Sw6uOiL/+IfIlCmOJvVt20TGjJEtixPlf/8rppndZpOtE9+U4+36iPTuLZKaWvnPo5SHOn+Se1ZWiYvyXnlDRgf9KCd8IkRA/hEyo9TdHbrnJZk+YLYsajBWfvnmhIiIfDd5g9QjVbZtK2aDEyckz9tfNtFT7D17SuKbVlJ/98ovnIl3rveNkphgl8NvfSMCsiBoTJEvkTP7i6d9NEemPZsoBQWlf/wDn/4qn97y0/kzfIJS57landzj4kS2zN8nubfdIQKSGh4lWxsOlLdvWi4//ODoxpaWJrneAfIEz8tXX4nsWnJEEhMqlgFTU0Vefy5N7MaIgKyO/IvsXn5Mjm8/KvZWrURAHon4oEjC/vCJvZL4n/flxwa3yduvOLpg2O2y/r3NknrcLvvXxsuqC+6W/3b5oMLnQSl1/qnVyf3ll0Ve5UERkNzGLWRNvSESa5rLfbwpgWTIx3X+JnGPvCoCMnXsqgofp4jERDnVNp6HjwjIbcx0JvN/v2iXXQ/PEAH5W6P5EhtbNYdVSqnCzpXcjbXcvaKjo2XDhg0V2nbvXoiZvZm+l/oS3r8rADYbLF0K74z4ifk5QwHY3aAfoVt/pVHjqpkQIT8rn9hjXoTvXI3X9SN42zaJC6LS2RvWm/s2TNB5F5RSLmeM2Sgixd42XeOTe6nmzYOEBLjlFoodzq8KZCVmkHjSn8h2Oii3Uqr6nCu51/45VEeNcvkhAhsGE1nswMZKKeUeOoeqUkrVQprclVKqFtLkrpRStZAmd6WUqoU0uSulVC2kyV0ppWohTe5KKVULaXJXSqlayCPuUDXGJAGeOLtyfSDZ3UGUU02LWeN1rZoWL9SsmN0daysRaVDcAo9I7p7KGLOhpFt7PVVNi1njda2aFi/UrJg9OVZtllFKqVpIk7tSStVCmtzPbYa7A6iAmhazxutaNS1eqFkxe2ys2uaulFK1kNbclVKqFtLkrpRStVFJ8+/VxAfQAvgF2AnsAB5wlIcDi4EYx3OYozzCsX4GMPWMfY0FtgFbgYVA/RKOeaFjvb3Am5xu6nod2OJ47AFOVEPMNzvi3QG8fI7zVFLM/YFNQAEw2sNjddX5HQRsdBxzIzCgtFiq6vx6YLylnuMqjvdF4AiQUcr/c085v5WNt0x/wxV9uD0hV+mHgSZAL8frEMcJ6wy8DDzmKH8MmOJ4HQRcCvyNQskHa4aqRBwJ3bH95BKOuQ64GDDAT8A1xaxzP/Chi2OOAA4DDRzvZwIDyxMzEAl0Bz4p7j+HJ8XqwvPbE2jqeN0VOFqeWCpzfj0t3rKc4yqO9yLH/kpLlp5yfisVb1n/hiv6cHtCduUD+Bbrm3c30KTQP+7uM9abQNHk4wskAa0c/yDvABNL+EPZVej9WODdYtZbAwxyccy9gSWF3t8GTKtIzMDHJf3n8LRYXXV+HeUGSAH8yxFLlZ1fT4m3POe4ovGeUV5isvSU81uV8Zb3b7isj1rb5m6MicT61v0daCQicQCO53POeCoi+cDdWD+ljmF9s39QzKrNgNhC72MdZYXjaAVEActcGTPWT76OxphIY4wPMBLrJ2i5Yy4LT4nVxed3FLBZRHLLEktZYy4rT4m3rOe4kvGWlaec3yqLtzx/w+VRK5O7MSYYmAf8XUTSKrC9L1Zy7wk0xWobfry4VYspkzPejwHmiojNlTGLSKoj5q+AX4GDWG2PFYn5nDwsVpecX2NMF2AKMKkcsZRnvdKO70nxlnqOqyDesvKU81vmQxVTVqG/4fKqdcndkZjnAZ+LyHxHcYIxpoljeROs9vRz6QEgIvvE+s00G7jEGONtjNnieDyH9S3cvNB2zbFq+oWNAb6ohpgRke9EpK+IXIz1MzOmgjHXpFir/PwaY5oDXwPjRGSfo7jYWKr6/HpovOc8x1UUb0n79tTzW5Xxlvo3XCFV2cbj7gfWt+QnwBtnlL9C0YslL5+xfAJF24SbAnGcvuD3PPBqCcdcj3Vh5dTFkqGFlnXAqpUW20uhKmN2lDV0PIdhXYFvX96YHcs/pvgLqh4VqyvOLxAK/AGMKu95q+z59cR4SzvHVRlvoW1Lu0DpEee3KuIty99wRR9VujN3P7B6ZghWM8oWx2MoVu+MpVjdnJYC4YW2OQgcx+quFwt0dpT/Dau71FbgOyCihGNGA9uBfcDUwv9IwGTgpWqM+QvgT8djzDmOWWzMWBc6Y4FMrAtHOzw1VledX+BJx+ffUujRsLRYquL8elq8ZTnHVRzvy47zY3c8T/bw81upeMv6N1zRhw4/oJRStVCta3NXSimlyV0ppWolTe5KKVULaXJXSqlaSJO7UkrVQprclVKqFtLkrpRStdD/AyNJBbNSSEYOAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "# 准备画布和轴\n",
    "fig, ax = plt.subplots()\n",
    "# 准备数据\n",
    "x = df['日期'].to_numpy()\n",
    "y1 = df['收盘'].to_numpy()\n",
    "y2 = result_model.fittedvalues\n",
    "# 绘制x-y1曲线\n",
    "ax.plot(x, y1, color='blue', linestyle='--', label='True')\n",
    "# 绘制x-y2曲线\n",
    "ax.plot(x, y2, color='red', linestyle='--', label='modle')\n",
    "# 显示图例\n",
    "ax.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "b3bf0f4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.13.2'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import statsmodels \n",
    "statsmodels.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cfd0e64c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 如果是旧版本的 statsmodels ( <= 0.12 ),以下代码可以和选项C得到一样的图形\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import warnings\n",
    "import statsmodels.api as sm\n",
    "import matplotlib.pyplot as plt\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "pydata05 = pd.read_excel(r'pydata05_1678066125986.xlsx', index_col = None)\n",
    "data = pydata05.set_index('日期')['收盘']\n",
    "model=sm.tsa.ARMA(data, order=(1,1))\n",
    "results_MA=model.fit()\n",
    "plt.plot(data,'b',label='True')\n",
    "plt.plot(results_MA.fittedvalues,'r--',label='model')\n",
    "plt.legend()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
